From 7db37af9be3b4782fd60a83c52775c295dfebecf Mon Sep 17 00:00:00 2001 From: Alex Williamson Date: Thu, 27 Sep 2007 15:10:42 -0600 Subject: [PATCH] [IA64] Kdump: Save dom0_mm_pgd_mfn in vmcore on ia64 On Xen dom0_mm_pgd_mfn needs to be saved in the vmcore in order to allow the crash utility to navigate the vmcore file. Cc: Itsuro ODA Signed-off-by: Simon Horman --- xen/arch/ia64/xen/crash.c | 13 +++++++++---- xen/include/xen/elfcore.h | 5 ++++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/xen/arch/ia64/xen/crash.c b/xen/arch/ia64/xen/crash.c index 1cc78fb15f..df340b1c57 100644 --- a/xen/arch/ia64/xen/crash.c +++ b/xen/arch/ia64/xen/crash.c @@ -15,16 +15,21 @@ #include #include #include +#include void machine_crash_shutdown(void) { - //printk("machine_crash_shutdown: %d\n", smp_processor_id()); + crash_xen_info_t *info; + unsigned long dom0_mm_pgd_mfn; + if (in_interrupt()) ia64_eoi(); kexec_crash_save_info(); - printk(__FILE__ ": %s: save the eqivalent of x86's " - "dom0->shared_info->arch.pfn_to_mfn_frame_list_list?\n", - __FUNCTION__); + info = kexec_crash_save_info(); + /* Info is not word aligned on ia64 */ + dom0_mm_pgd_mfn = __pa(dom0->arch.mm.pgd) >> PAGE_SHIFT; + memcpy((char *)info + offsetof(crash_xen_info_t, dom0_mm_pgd_mfn), + &dom0_mm_pgd_mfn, sizeof(dom0_mm_pgd_mfn)); #ifdef CONFIG_SMP smp_send_stop(); #endif diff --git a/xen/include/xen/elfcore.h b/xen/include/xen/elfcore.h index fbe8ed1a6a..175ee628fe 100644 --- a/xen/include/xen/elfcore.h +++ b/xen/include/xen/elfcore.h @@ -65,9 +65,12 @@ typedef struct { unsigned long xen_compile_date; unsigned long xen_compile_time; unsigned long tainted; -#ifdef CONFIG_X86 +#if defined(__i386__) || defined(__x86_64__) unsigned long dom0_pfn_to_mfn_frame_list_list; #endif +#if defined(__ia64__) + unsigned long dom0_mm_pgd_mfn; +#endif } crash_xen_info_t; #endif /* __ELFCOREC_H__ */ -- 2.30.2